const jwt = require("jsonwebtoken");

//用es6的语法对生成Token和验证Token方法进行函数的封装
class tokenObj {
    createToken(userInfo){
        let payload = userInfo;  // Token 数据
        let secret = 'gys.com'; // 这是加密的key（密钥或私钥）
        let token = jwt.sign(payload, secret, {
            expiresIn: 60*60 // 60分钟
        });
        return token;
    }
    checkToken(token, fn) {
        let secret = 'gys.com'; // 这是加密的key（密钥或私钥）
        jwt.verify(token, secret, function (err, decode) {
            try {
                if (err) { // 当token过期，或这是一个伪造的token，或这是无效的token时会触发此逻辑
                    fn(false);
                    return
                } else {
                    fn(decode.id);
                    return
                }
            }catch (e) {
                console.log(e)
            }
        })
    }
}
module.exports = tokenObj;



